安卓平台安全模型设计特点有哪些
安卓平台安全模型设计特点有以下这些:
采用多层架构,在保护用户信息安全的同时,保证开放平台上各种应用的灵活性。
既允许经验丰富的开发者充分利用安全架构的灵活性,也为不熟悉安全架构的开发者提供更多可以依赖的默认安全性设置。
鼓励用户了解应用程序是如何工作的,并鼓励用户对所持设备进行安全控制。
不但要面对恶意软件威胁,而且还要考虑第三方应用程序的恶意攻击。
安全保护与风险控制同在,在安全防护失效时,尽量减少损害,并尽快恢复使用。
安卓安全平台模型提供以下安全机制:
进程沙箱隔离机制:安卓应用程序在安装时被赋予独特的用户标识(UID),并永久保持。应用程序及其运行的Dalvik虚拟机运行于独立的Linux进程空间,与UID不同的应用程序完全隔离。
应用程序签名机制:应用程序包(.apk文件)必须被开发者数字签名。同一开发者可指定不同的应用程序共享UID,进而运行于同一进程空间,共享资源。
权限声明机制:应用程序需要显式声明权限、名称、权限组与保护级别。不同的级别要求应用程序行使此权限时的认证方式不同:Normal级申请即可用。Dangerous级需在安装时由用户确认才可用。签名与签名系统则必须是系统用户才可用。
访问控制机制:传统的Linux访问控制机制确保系统文件与用户数据不受非法访问。
进程通信机制:Binder进程通信机制提供基于共享内存的高效进程通信。Binder基于CS模式,提供类似COM与CORBA的轻量级远程进程调用(RPC)。通过接口描述语言(AIDL)定义接口与交换数据的类型,确保进程间通信的数据不会溢出越界,污染进程空间。
内存管理机制:基于标准Linux的低内存管理机制(OOM),设计实现了独特的低内存清理(LMK)机制,将进程按重要性分级、分组,当内存不足时,自动清理最低级别进程所占用的内存空间。同时,引入不同于传统Linux共享内存机制的安卓共享内存机制Ashmem,具备清理不再使用共享内存区域的能力。